Method and apparatus for controlling a computing system

ABSTRACT

A handheld computing device is introduced comprising a motion detection sensor(s) and a motion control agent. The motion detection sensor(s) detect motion of the computing device in one or more of six (6) fields of motion and generate an indication of such motion. The motion control agent, responsive to the indications of motion received from the motion sensors, generate control signals to modify, one or more of the operating state and/or the displayed content of the computing device based, at least in part, on the received indications.

RELATED CASES

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 12/701,516, filed Feb. 5, 2010, now issued as U.S.Pat. No. 8,502,775, which is a continuation of and claims priority toU.S. patent application Ser. No. 11/497,567, filed on Jul. 31, 2006, nowissued as U.S. Pat. No. 7,679,604, which is a continuation of and claimspriority to U.S. patent application Ser. No. 11/013,654, filed on Dec.15, 2004, now issued as U.S. Pat. No. 8,018,435, which is a continuationof and claims priority to U.S. patent application Ser. No. 09/823,221,filed Mar. 29, 2001, now issued as U.S. Pat. No. 6,834,249, all of whichare incorporated herein by reference in their entirety.

TECHNICAL FIELD

This invention generally relates to the field of user interfaces and,more particularly, to a method and apparatus for controlling a computingdevice.

BACKGROUND

Recent advances in computing power and related technology have fosteredthe development of a new generation of powerful software applications.Gaming applications, communications applications, and multimediaapplications have all benefited from increased processing power andclocking speeds. Despite these recent advances, however, the userinterface for most computing systems dates back nearly thirty (30)years, i.e., utilizing a keyboard and pointing device to interface withand control certain aspects of the computing environment. These userinterface devices are often cumbersome and non-intuitive at best, andmay well lead to repetitive motion injuries and are unusable by asignificant population of potential computer users at worst. Whileinconvenient and non-enabling in a desktop environment, suchconventional user interface devices may well be dangerous in a mobile,handheld environment.

Despite these problems, many of the conventional mobile computingplatforms. e.g., personal digital assistants (PDA), electronic books(or, eBooks), portable communication devices (cell phones, pagers, andthe like), portable gaming appliances, and the like inherited similaruser interface devices. That is, these mobile computing devicestypically rely upon manual buttons, touchscreens, trackpads, trackballsand other traditional pointing devices to control the state of thedevice and/or the display of content generated by an application. As inthe case of the desktop systems, these user interface devices aretypically cumbersome to varying degrees as they often require two handsto operate (e.g. touchscreens, track-pads, and track-balls), or do notprovide a simple Say to control the state of an application and/or thedisplay of content generated within an application.

Thus, a method and apparatus for controlling a computing system ispresented, unencumbered by the deficiencies and limitations commonlyassociated with the prior art.

SUMMARY

A method and apparatus for controlling a computing system is presented.In accordance with a first embodiment of the present invention, ahandheld computing device is introduced comprising a motion detectionsensor(s) and a motion control agent. The motion detection sensor(s)detect motion of the computing device in one or more of six (6) fieldsof motion and generate an indication of such motion. The motion controlagent, responsive to the indications of motion received from the motionsensors, generate control signals to modify one or more of the operatingstate and/or the displayed content of the computing device based, atleast in part, on the received indications.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and notnecessarily by way of limitation in the figures of the accompanyingdrawings in which like reference numerals refer to similar elements;

FIG. 1 is a block diagram of a computing system including a motioncontrol agent, according to one example embodiment of the presentinvention;

FIG. 2 is a block diagram of an example motion control interface,according to one embodiment of the present invention;

FIG. 3 illustrates a flow chart of an example method facilitating usercontrol of a computing system, in accordance with the teachings of thepresent invention;

FIG. 4 depicts a flow chart of an example method for controlling acomputing system by physically manipulating the computing system, inaccordance with one example embodiment of the present invention;

FIG. 5 graphically illustrates control of an operating system (OS)graphical user interface (GUI) to control the state of a computingsystem using motion control, in accordance with one aspect of thepresent invention;

FIGS. 6-11 graphically illustrate motion control of the computingsystem's display of content associated with an executing application, inaccordance with another aspect of the present invention; and

FIG. 12 is a graphical illustration of an example storage mediumincluding instructions which, when executed, implement a motion controlinterface in a computing system.

DETAILED DESCRIPTION

This invention concerns a method and apparatus for controlling thedisplay of a computing system. According to one aspect of the presentinvention, personal computing devices are provisioned with a motioncontrol agent which, in response to input from one or more motiondetection sensor(s) coupled to the motion control agent, issues displaycontrol commands to a display control device. Those skilled in the artwill appreciate that the introduction of the innovative motion controlagent into such computing devices as, for example, a personal digitalassistant (PDA), an electronic book (eBook) appliance, personalcommunication devices, portable gaming devices and the like enables auser to intuitively control the state and/or displayed content of acomputing device without the conventional need of pressing button(s), ormanipulating a trackpad, trackball, etc. In this regard, the motioncontrol agent represents a new paradigm in user control of computingsystems.

Reference throughout this specification to “one embodiment” or “anembodiment” means that a particular feature, structure or characteristicdescribed in connection with the embodiment is included in at least oneembodiment of the present invention. Thus, appearances of the phrases“in one embodiment” or “in an embodiment” in various places throughoutthis specification are not necessarily all referring to the sameembodiment. Furthermore, the particular features, structures orcharacteristics may be combined in any suitable manner in one or moreembodiments.

Example Computing System

FIG. 1 illustrates a block diagram of an example computing system withinwhich the teachings of the present invention may be practiced, inaccordance with one example embodiment of the present invention. Inaccordance with the illustrated example embodiment of FIG. 1, acomputing system 100 is depicted comprising one or more controller(s)102, system memory 104, a display interface 106, a video display device108, input/output (I/O) interface(s) 110, network interface(s) 112 andan innovative motion control agent 114 responsive to one or more motiondetection sensor(s) 116, each coupled as shown. In addition to theforegoing, computing system 100 is depicted comprising mass storagedevices(s) 128 and one or more conventional keyboard/pointing devices130, each coupled as depicted. In accordance with the teachings of thepresent invention, to be developed more fully below, motion controlagent 114 generates control signals to control one or more of theoperational state and/or the display content of the computing devicebased, at least in part, on indication(s) of motion received from theone or more motion detection sensor(s) 116. In this regard, a user ofcomputing device 100 can intuitively control the operating state and/ordisplay content of the computing device without resorting to theconventional I/O means of a keyboard and/or pointing device(s) (130)such as a touchpad, trackball, and the like.

As shown, system memory 104 is depicted comprising computer readablemedium including a Volatile memory such as random access memory (RAM)118, and a non-volatile memory such as read-only memory (ROM) 124. RAM118 is depicted comprising applications 120 and/or data that areimmediately accessible to and/or available for operation on by controllogic, e.g., controller(s) 102. ROM 124 is depicted comprising a basicinput/output system (BIOS) 126 comprising a rudimentary set of routinesthat help to transfer information between elements within computingdevice 100 prior to execution of an operating system, e.g. duringstart-up or reset periods.

Controller(s) 102 implements an operating system (e.g., withinapplications 120) and selectively executes other applications 102 inresponse to user interaction with the computing device. In accordancewith one aspect of the present invention, in addition to conventionalmeans of control, controller 102 is responsive to control signalsgenerated by motion control agent 114 to control the operational stateand/or display content of the computing device 100. But for itsinteraction with motion control agent 114, controller 102 is intended torepresent any of a wide variety of control logic means known in the artsuch as, for example, a microprocessor, a special purposes controller, ageneral purpose controller, an application specific integrated circuit(ASIC), a programmable logic device (PLD), a field-programmable gatearray (FPGA), and the like.

Input/output (I/O) interface(s) 110 enable input and output devices tointeract with the computing device 100 in general, and controllerswithin the computing device in particular. As shown, I/O interface(s)110 is coupled to conventional keyboard/pointing devices 130 to receiveuser input from such devices and generate control signals for use by thecontroller(s) 102 in response to user interaction with the devices.Similarly, motion control agent 114 generates control signals for use bythe controller(s) 102 in response to user interaction with (i.e.movement of) the computing device. According to one implementation,motion control agent 114 is integrated within I/O interface(s) 110,wherein the motion detection sensor(s) 116 provide indications of motionto the I/O interface(s) 110, which generates control signals to interactwith controller(s) 102. But for such interaction with, or integration ofmotion control agent 114, I/O interfaces 110 are intended to represent awide variety; of such interfaces known in the art such as, for example,a Universal Serial Bus (USB) interface, a Personal Computing Interface(PCI) bus interface, a serial bus interface, a parallel bus interface,an infrared interface, a radio frequency (RF) interface, and the like.

As used herein but for their interaction with motion control agent 114,each of the displays interface 106 and associated display device 108,network interface(s) 112, mass storage device(s) 128 and conventionaluser I/O devices 130 are each intended to represent such elements asthey are commonly known in the art.

Motion control agent 114, as introduced above and will be developed morefully below, generates control signals to controller(s) 102 to modify anoperational state and/or display content of the computing device 100 inresponse to user interaction with the computing device 100. Moreparticularly, motion control agent 114 issues such control signals inresponse to indications received from one or more motion detectionsensor(s) 116. The motion detection sensor(s) 116 the physical movementof the computing device 100 in one or more of six (6) fields of motion,i.e., in each of the x-, y- or z-planes, as well as rotational motionabout each of the x-, y-, or z-axes. In accordance with one exampleimplementation, when an indication of rotational movement is detectedfrom one or more of the sensor(s) 116, an indication of a complementarymotion is required before the motion control agent 114 issues a controlsignal. In this regard, motion control agent 114 facilitates rotationalcontrol of the computing device, awhile providing the user with theopportunity, to return the device to a proper viewing position after therotational control.

In accordance with one implementation, motion control agent 114identifies a current operating state of the computing device, e.g.,whether the operating system or another application has operationalcontrol over the display 108 of the computing device 100, and generatescontrol signals in accordance with the operational state and thereceived indication(s) of motion. That is, the motion control signalgenerated by motion control agent 114 in response to a particular motiondiffers if the display device is controlled by the operating system oranother application. As will be developed more fully below, motioncontrol agent 114 issues control signals to move an highlighted, activeregion of an operating system graphical user interface from one icon toanother in a direction denoted by user movement of the computing deviceif the operating system has operational control over the displays 108.An application associated with an icon is selectively invoked inresponse to control signals generated by motion control agent 114 inresponse to user movement of the computing device in a particular way.In accordance with one aspect of the invention, motion control agent 114selectively generates a user interface that enables a user of thecomputing device to define how the motion control agent 114 responds tocertain user movements of the computing device. In this regard, motioncontrol agent 114 provides a flexible I/O solution.

Motion detection sensor(s) 116 generate an indication denoting motion inone or more of six (6) fields of motion. In this regard, motiondetection sensors 116 are intended to represent any of a wide variety ofsuch devices with the physical dimensions to be integrated with ourexemplary computing devices. Examples of suitable motion detectionsensor(s) 116 include micro-accelerometers, liquid-metal switches (e.g.,a mercuric switch), micro-machined gyroscopes, and the like. It will beappreciated by those skilled in the art that the complexity of thesensor(s) 116 utilized in a particular implementation may well dictatethe number of sensor(s) required to provide functionality, in all sixplanes of movement. That is, multiple mercury switches may well berequired to provide such functionality, while a singlemicro-accelerometer or micro-machined gyroscope may well provide thenecessary functionality. Any combination of one or more of such devicesmay well be utilized without deviating from the spirit and scope of thepresent invention.

It will be appreciated by, those skilled in the art that, althoughillustrated as a plurality of disparate functional elements, one or moreof the elements 102-130 may resell be combined into multi-functionalelements. In accordance with one alternate example implementation, forexample, a motion control agent 114 wraith one or more integrated motiondetection sensor(s) 116 is envisioned. In yet another exampleimplementation, motion control agent 114 is implemented as a series ofexecutable instructions within application(s) 120, selectively invokedby controller(s) 102 to implement the teachings of the presentinvention. In this regard, computing system 100 is merely intended toillustrate one embodiment of the present invention, as other embodimentsof greater or lesser complexity may be developed without deviating fromthe scope and spirit of the present invention.

Accordingly, but for the introduction of the innovative motion controlagent 114 and associated motion detection sensor(s) 116, computingsystem 100 is intended to represent any of a wide variety of computingsystems known in the art.

Example Motion Control Agent

Having introduced the operating environment of the present invention,above, attention is now directed to FIG. 2 wherein a block diagram of anexample motion control agent 114 is presented, in accordance with oneexample embodiment. In accordance with the illustrated exampleimplementation of FIG. 2, motion control agent 114 is presentedcomprising control logic 202, one or more motion detection sensorinterface(s) 204 and memory 206, each coupled as shown. As shown, motioncontrol agent 114 receives motion indication(s) from one or moresensor(s) and interacts with control logic (e.g. 102) of a hostcomputing device (e.g. 100) to control the operational state and/ordisplay content of the computing device. In addition, in certainimplementations, the function of motion control agent 114 is controlledby a user through the use of an enable button that, when depressed,provides an enable indication to the motion control agent. In alternateembodiments, motion control agent 114 relies on a motion threshold ofthe motion detection sensor(s) to ensure that random movements of thedevice does not result in a motion indication, thereby affecting theoperational state and/or display content of the device. Althoughillustrated in accordance with a hardware implementation, those skilledin the art will appreciate that motion control agent 114 may well beimplemented as a series of executable instructions (e.g., an application120) to implement the functions described below. In this regard, theblock diagram of FIG. 2 is merely illustrative of one embodiment of thefunctional elements of the motion control agent, and not a limitationthereof.

As introduced above, motion control agent 114 interacts with othercontrol logic (e.g., controllers 202) to control one or more of anoperational state and/or display content of the computing device. Inthis regard, motion control agent 114 includes control logic 202 toperform this interfacing function. More particularly control logic 202issues control signals to other control logic to control the operationalstate and/or displays content of the computing device 100 in response toindications of motion received from motion detection sensor(s) 116 andwith regard to a current operational state of the computing device.Accordingly, control logic 202 interacts with controllers 202 toidentify, the current operational state of the computing device 100,e.g., whether the operating system or another application hasoperational control over the display 108. Based, at least in part, onthe current operational state of the computing device and in response toreceived indications of motion, control logic 202 selects one or morecontrol signals from a plurality of control signals resident within thecontrol logic 202 or memory 206 to issue to other control logic (102) ofthe computing device.

Sensor interface(s) 204 enable each of the one or more types of motiondetection sensor(s) 116 to provide indications of motion to motioncontrol agent 114. Examples of such interfaces include a control bus, adirect-memory access (DMA) line to control logic 202, a single controlline, an I.sup.2C bus, and the like.

As used herein, memory 206 is utilized by control logic 202 to store andmaintain operational information and control signal informationassociated with one or more computing devices. According to oneimplementation, introduced above, control logic 202 receives informationregarding a current operational state of the computing device, whereinsuch information is stored and maintained in memory 206. In addition,memory 206 is used to store information used by control logic 202 totranslate information received from one or more of a wide variety ofmotion detection sensor(s) into control signal(s) for any of a widevariety of computing device platforms. In this regard, motion controlagent 114 is flexible and readily adaptable for use in a wide variety ofcomputing device platforms. But for its use within and interaction withmotion control agent 114, memory 206 is intended to represent any of awide variety of memory means known in the art.

Example Operation and Implementation

Having introduced the functional and architectural elements of anexample embodiment of the innovative motion control agent 114 withreference to FIGS. 1 and 2, an example operation and implementation willbe further developed with reference to FIGS. 3 through 11. For ease ofillustration, and not limitation, the operational detail of the motioncontrol agent 114 will be further developed in accordance with theexample implementation context of a personal digital assistant (PDA)computing environment. In accordance with such an exampleimplementation, the computing system 100 of FIG. 1 represents a PDAendowed with the innovative motion control agent 114 and associatedmotion detection sensors 116. Nonetheless, it will be appreciated barthose skilled in the art that computing devices of greater or lessercomplexity which utilize a motion control agent so control the stateand/or displays content of a computing device fall within the spirit andscope of the claims appended hereto.

Turning to FIG. 3, a flow chart of an example method facilitating usercontrol of a computing system is depicted, in accordance with theteachings of the present invention. In accordance with the illustratedexample implementation of FIG. 3, the method begins with block 302 uponinitiation of the device during start-up or a reset condition. That is,as with conventional I/O means, the motion control agent 114 isselectively invoked upon start-up or reset of the computing device 100to facilitate control of the device through a user's physical movementof the PDA.

In block 304, control logic 102 of the PDA receives user input from anof a number of I/O sources including motion control agent 114. That isto say, integration and initiation of the innovative motion controlagent 114 does not disable an), of the other I/O means available to theuser. In certain instances and applications, control of the operationalstate and/or displays content of the PDA is more conveniently performedwraith traditional I/O devices 130 such as a trackball, stylus, and thelike. In accordance with the teachings of the present invention, asintroduced above, computing device 100 is endowed with motion controlagent 114, which generates control signal representations of user inputfor transmission to control logic 102 based, at least in part, on thecurrent operational state of the PDA 100 and received indications ofmotion of the PDA 100 generated by motion detection sensor(s) 116. Anexample method for controlling the operational state and/or the displaycontent of a computing device (100) is further illustrated withreference to FIG. 4, below.

In block 306, in response to such user input (block 304), control logic102 updates the operational state and/or display content of the PDA 100in accordance with received input through the end of the computingsession.

FIG. 4 depicts a flow chart of an example method for controlling acomputing system by physically moving and manipulating the computingsystem, in accordance with one example embodiment of the presentinvention. In accordance with the illustrated example implementation ofFIG. 4, the method begins with block 402, wherein motion control agent114 receives an indication of movement from one or more motion detectionsensor(s) 116 via sensor interface(s) 204. In accordance with oneexample implementation, introduced above, PDA 100 includes one or moremotion detection sensor(s) to provide an indication of motionspecifically denoting six (6) fields of motion, i.e., movement of thePDA 100 in the x-, y- and z-planes as well as rotational movement of thePDA 100 about the x-, y- and z-axes. According to one exampleimplementation, introduced above, the motion detection sensor(s) 116 mayuse a motion threshold that must be reached before the motionindications are sent to the motion control agent. In alternateimplementations, the computing device 100 may well include an “enablebutton” that, when depressed by the user enables the motion controlagent 114 to respond to motion indications received by the agent 114. Inaccordance wraith one example implementation, motion control agent 114includes, or has access to memory comprising a listing of controlsignals associated with indications of movement in each of the sixfields based, at least in part, on the current operational state of thePDA 100.

Accordingly, in block 404, motion detection agent 114 identifies thecurrent operational state of the PDA 100. More particularly, controllogic 202 periodically receives an update on the operational state ofthe computing device from controller(s) 102. In accordance Wraith oneexample, control logic 202 receives such updates whenever there is astate change of the computing device. In alternate implementations,control logic 202 queries controller 102 for the current operationalstate. As introduced above, the current operational state is stored andmaintained by control logic 202 in memory 206.

In block 406, motion control agent 114 generates instructions to updatethe current state of the device and/or the display content of the devicebased, at least in part on the received indication(s) and the currentstate of the device. More particularly, in response to motionindications received from one or more sensor(s) 116 via sensorinterface(s) 204, control logic 202 accesses memory 206 and, dependingon the current operational state of the PDA 100 denoted in memory 206,generates an appropriate control signal(s) for controller(s) 102 toupdate the operational state and/or displays content of the device.

If, for example, the PDA 100 is currently displaying the operatingsystem GUI, select movements of the PDA 100 cause motion detection agent114 to generate control signals to move a highlighted, active region ofthe display to move from one icon to another in accordance with thedirection of the movement. Certain other movements cause motiondetection agent 114 to generate control signals to launch an applicationassociated with an icon contained within the highlighted active regionof the display.

If, for example, the PDA 100 is implementing an application, certainmovements of the PDA 100 cause motion detection agent 114 to generatecontrol signals to display a subsequent page of content, display aprevious page of content, scroll a page of content, and/or zoom in/outof the displayed page of content. An example of PDA movements and theassociated display response are illustrated in FIGS. 5-11, below.

Graphical Illustration(s) of Motion Control of a Computing Device

FIG. 5 graphically illustrates an example implementation of using motioncontrol to affect the operating system (OS) graphical user interface(GUI) to control the state of a computing system, in accordance with oneaspect of the present invention. In accordance wraith the illustratedexample implementation of FIG. 5, an operating system (O/S) graphicaluser interface (GUI) is depicted 500 for a PDA (e.g., 100) comprisingtwo (2) icons 502, 504, each associated with a unique applicationavailable for invocation and execution by the PDA. As shown in display500, one of the icons 502 is currently selected within a highlighted,active region 506. By rotating the PDA 100 to the right about theY-axis, and back again (a complementary motion back to the originalviewing position), motion control agent 114 generates instructions(e.g., to controller 102) to update display 500 to that of 520. Moreparticularly, the highlighted active region 506 is moved one icon to theright (i.e., in the direction of the rotation). Similarly, rotation tothe left about the y-axis (and a complementary motion back again) causesmotion control agent 114 to generate control signals to controller 102to send the highlighted active region back one incremental icon to icon502. Similar movements about the x-axis would move the highlightedactive region up or down in the active display. In accordance with oneimplementation, rotation about the z-axis (and a complementary motionback to the starting position) causes motion control agent 114 to issuecontrol signals to controller 102 to launch the application associatedWraith the icon in the highlighted, active region 506. In this regard,motion control agent 114 provides an intuitive means of interacting withan operating system of a computing device to control the operationalstate of the device.

Turning next to FIGS. 6-11, similar graphical illustrations arepresented which depict motion control of displayed content of anapplication, in accordance with one embodiment of the present invention.More particularly, FIGS. 6-11 illustrate resulting updates to displayedcontent of an application resulting from certain movements of the PDA100 by the user. For purposes of illustration, assume that theapplication is an electronic book (eBook) that the user is reading.Rather than using convention input devices to scroll, zoom, paginate thebook, a PDA 100 endowed with motion control agent 114 facilitates anintuitive motion control of the application by physically manipulatingthe electronic device executing the ebook application.

FIG. 6 graphically illustrates updating the display 600 of the PDA 100to display a subsequent page of the eBook. In accordance with theteachings of the present invention, two alternate means may be employed.In a first, a user slides the PDA 100 to the right in the x-plane tostep to the next page. Alternatively, a rotational motion to the rightabout the y-axis, with a complementary motion back (to the left) aboutthe y-axis to the starting point also steps to the next page. In eithercase, upon the assertion of an enable button and/or once a motionthreshold of one or more sensor(s) is reached, the sensor(s) 116generate an indication of such motion for motion control agent 114,which issues control signals (e.g., to controller 102) to update thedisplay content. In response, the display 108 is updated to reflect Page(N+1) 602.

FIG. 7 graphically illustrates updating the display 700 of the PDA 100to display a previous page of the eBook. In accordance with theteachings of the present invention, two alternate means may be employed.In a first, a user slides the PDA 100 to the left in the x-plane to stepto the next page. Alternatively, a rotational motion to the left aboutthe y-axis, with a complementary motion back (to the right) about they-axis to the starting point also steps to the next page. In eithercase, upon the assertion of an enable button and/or once a motionthreshold of one or more sensor(s) is reached, the sensor(s) 116generate an indication of such motion for motion control agent 114,which issues control signals (e.g. to controller 102) to update thedisplays content. In response, the display 108 is updated to reflectPage (N−1) 702.

FIG. 8 graphically illustrates updating the display 800 of the PDA 100to scroll downward within a displayed page of an eBook application. Inaccordance with the teachings of the present invention, two alternatemeans may be employed. In a first, a user slides the PDA 100 downward inthe y-plane to effect the scroll. Alternatively, a rotational motionupward and forward about the x-axis, with a complementary motion back(downward and backward) about the x-axis to the starting point alsoscrolls the page. In either case, upon the assertion of an enable buttonand/or once a motion threshold of one or more sensor(s) is reached, thesensor(s) 116 generate an indication of such motion for motion controlagent 114, which issues control signals (e.g., to controller 102) toupdate the displays content. In response, the display 108 is updated toreflect Page N 802.

FIG. 9 graphically illustrates updating the display 900 of the PDA 100to scroll upward within a displayed page of an eBook application. Inaccordance with the teachings of the present invention, two alternatemeans may be employed. In a first, a user slides the PDA 100 upward inthe y-plane to effect the scroll. Alternatively, a rotational motiondownward and backward about the x-axis, with a complementary motion back(upward and forward) about the x-axis to the starting point also scrollsthe page. In either case, upon the assertion of an enable button and/oronce a motion threshold of one or more sensor(s) is reached, thesensor(s) 116 generate an indication of such motion for motion controlagent 114, which issues control signals (e.g., to controller 102) toupdate the displays content. In response, the display 108 is updated toreflect Page N 902.

FIG. 10 graphically illustrates updating the display 1000 of the PDA 100to zoom-in on content within a displayed page of an eBook application.In accordance with one example implementation, a user moves the deviceupward in the z-plane (e.g., towards the user), to effect the zoom. Uponthe assertion of an enable button and/or once a motion threshold of oneor more sensor(s) is reached, the sensor(s) 116 generate an indicationof such motion for motion control agent 114, which issues controlsignals (e.g., to controller 102) to update the display content. Inresponse, the display 108 is updated to reflect Page N 1002.

FIG. 11 graphically illustrates updating the display 1100 of the PDA 100to zoom-out on content within a displayed page of an eBook application.In accordance with one example implementation, a user moves the devicedownward in the z-plane (e.g., away from the user), to effect the zoom.Upon the assertion of an enable button and/or once a motion threshold ofone or more sensor(s) is reached, the sensor(s) 116 generate anindication of such motion for motion control agent 114, which issuescontrol signals (e.g., to controller 102) to update the display content.In response, the display 108 is updated to reflect Page N 1102.

Alternate Embodiments

FIG. 12 is a block diagram of a storage medium having stored thereon aplurality of instructions including instructions to implement the motioncontrol agent 114, according to yet another embodiment of the presentinvention. In general, FIG. 12 illustrates a storage medium/device 1200having stored thereon a plurality of machine-executable instructionsincluding at least a subset of which that, when executed, implement theinnovative motion control agent 114 of the present invention.

As used herein, storage medium 1200 is intended to represent any of anumber of storage devices and/or storage media known to those skilled inthe art such as, for example, volatile memory devices, non-volatilememory devices, magnetic storage media, optical storage media, and thelike. Similarly, the executable instructions are intended to reflect anyof a number of software languages known in the art such as, for example,C++. Visual Basic, Hypertext Markup Language (HTML), Java, eXtensibleMarkup Language (XML), and the like. Moreover, it is to be appreciatedthat the storage medium/device 1200 need not be co-located with any hostsystem. That is, storage medium/device 1200 may well reside within aremote server communicatively coupled to and accessible by an executingsystem. Accordingly, the software implementation of FIG. 12 is to beregarded as illustrative, as alternate storage media and softwareembodiments are anticipated within the spirit and scope of the presentinvention.

Although the invention has been described in the detailed description aswell as in the Abstract in language specific to structural featuresand/or methodological steps, it is to be understood that the inventiondefined in the appended claims is not necessarily limited to thespecific features or steps described. Rather, the specific features andsteps are merely disclosed as exemplary forms of implementing theclaimed invention. It will, however, be evident that variousmodifications and changes may be made thereto without departing from thebroader spirit and scope of the present invention. The presentspecification and figures are accordingly to be regarded as illustrativerather than restrictive. The description and abstract are not intendedto be exhaustive or to limit the present invention to the precise formsdisclosed.

The terms used in the following claims should not be construed to limitthe invention to the specific embodiments disclosed in thespecification. Rather, the scope of the invention is to be determinedentirely by the following claims, which are to be construed inaccordance with the established doctrines of claim interpretation.

In accordance with the foregoing, we claim the following:
 1. A computingdevice, comprising: a sensor configured to sense: a first motion in afirst direction or a first rotational direction exceeding a first motionthreshold; and a second motion in a second direction or a secondrotational direction exceeding a second motion threshold, the seconddirection or the second rotational direction being reverse to the firstdirection or the first rotational direction, respectively; and acontroller configured to: generate a control signal based at least inpart on sensing the first motion and the second motion in apredetermined sequence during a predetermined time period; determine acurrent operating state of the computing device; and modify the currentoperating state of the computing device based at least in part on thecontrol signal; wherein the first direction or the second directioncomprises x, y, or z directions; and wherein the first rotationaldirection or the second rotational direction comprises rotation about x,y, or z axes.
 2. The computing device of claim 1, wherein the controlleris further configured to change the current operating state of thecomputing device from a first operating state to a second operatingstate of the computing device.
 3. The computing device of claim 1,wherein the control signal is configured to trigger a display of contenton the computing device.
 4. The computing device of claim 1, wherein thecontroller is further configured to generate the control signal inresponse to an enable signal.
 5. The computing device of claim 1,wherein the controller is further configured to control highlighting ofan active icon displayed on the computing device.
 6. The computingdevice of claim 1, wherein the controller is further configured tocontrol invoking an application associated with an icon displayed on thecomputing device.
 7. The computing device of claim 1, wherein thecontroller is further configured to control modifying content displayedon the computing device by scrolling, zooming, or moving content.
 8. Thecomputing device of claim 1, wherein the sensor comprises amicro-accelerometer, a mercury switch, a shock detector, or a gyroscope.9. A method, comprising: sensing, using a sensor, a first motion of acomputing device in a first direction or a first rotational directionexceeding a first motion threshold; sensing, using the sensor, a secondmotion of the computing device in a second direction or a secondrotational direction exceeding a second motion threshold, the seconddirection or the second rotational direction being reverse to the firstdirection or the first rotational direction, respectively; determining acurrent operating state of the computing device; and modifying thecurrent operating state of the computing device based at least in parton sensing the first motion and the second motion in a predeterminedsequence during a predetermined time period; wherein the first directionor the second direction comprises x, y, or z directions; and wherein thefirst rotational direction or the second rotational direction comprisesrotation about x, y, or z axes.
 10. The method of claim 9, whereinmodifying the current operating state of the computing device furthercomprises moving a highlighted active region of a graphical userinterface from one icon to another icon based at least in part onsensing the first motion and the second motion.
 11. The method of claim9, further comprising modifying display of content on the computingdevice in response to the control signal.
 12. The method of claim 9,further comprising generating the control signal in response to anenable signal.
 13. The method of claim 9, further comprising controllinghighlighting of an active icon displayed on the computing device. 14.The method of claim 9, further comprising controlling invoking anapplication associated with an icon displayed on the computing device.15. The method of claim 9, further comprising controlling modifyingcontent displayed on the computing device by scrolling, zooming, ormoving content.
 16. A device, comprising: a memory device configured tostore instructions; and a processing device configured to execute theinstructions stored in the memory device to: sense a first motion of acomputing device in a first direction or a first rotational directionexceeding a first motion threshold; sense a second motion of thecomputing device in a second direction or a second rotational directionexceeding a second motion threshold, the second direction or the secondrotational direction being reverse to the first direction or the firstrotational direction, respectively; determine a current operating stateof the device; and modify the current operating state of the devicebased at least in part on sensing the first motion and sensing thesecond motion in a predetermined sequence during a predetermined timeperiod; wherein the first direction or the second direction comprises x,y, or z directions; and wherein the first rotational direction or thesecond rotational direction comprises rotation about x, y, or z axes.17. The device of claim 16, wherein the processing device is furtherconfigured to execute the instructions stored in the memory device tochange the current operating state of the computing device from anoperating system to an application.
 18. The device of claim 16, whereinthe processing device is further configured to execute the instructionsstored in the memory device to modify display of content on thecomputing device.
 19. The device of claim 16, wherein the processingdevice is further configured to execute the instructions stored in thememory device to generate a control signal; and wherein the processingdevice is further configured to execute the instructions stored in thememory device to control the computing device in response to the controlsignal.
 20. The device of claim 16, wherein the processing device isfurther configured to execute the instructions stored in the memorydevice to control highlighting of an active icon displayed on thecomputing device.
 21. The device of claim 16, wherein the processingdevice is further configured to execute the instructions stored in thememory device to control invoking an application associated with an icondisplayed on the computing device.
 22. The device of claim 16, whereinthe processing device is further configured to execute the instructionsstored in the memory device to control modifying content displayed onthe computing device by scrolling, zooming, or moving content.